package com.fg.cloud.manager.service.product;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.fg.cloud.common.PageUtils;
import com.fg.cloud.manager.entry.product.ProductSpecKeyEntity;
import com.fg.cloud.manager.entry.product.ProductSpecModelEntity;
import com.fg.cloud.manager.entry.product.vo.ProductSpecModelVo;
import com.fg.cloud.manager.service.BaseService;

/**
  * @Description:商品规格模板接口
  * @author dingjiang
  * @date 2017年8月7日下午2:53:07
*/
public interface ProductSpecModelService extends BaseService{
	
	/**
	 * Description:判断是否存在
	 * @param searchEntity
	 * @return
	 * @author dingjiang
	 * @date 2017年9月1日下午2:09:01
	 */
	boolean judgeIsExist(ProductSpecModelEntity searchEntity);
	
	boolean JudgeIsExist(ProductSpecModelEntity searchEntity);
	
	/**
	  * Description:动态新增规格模板，规格键，规格值
	  * @param specModelEntity
	  * @return
	  * @author dingjiang
	  * @date 2017年8月15日上午9:33:53
	 */
	boolean insert(ProductSpecModelEntity specModelEntity);
	
	boolean insertKey(String specName, Long facId, Long modelId, List<String> valueList);
	
	/**
	  * Description:分页查询
	  * @param pageinfo
	  * @return
	  * @author dingjiang
	  * @date 2017年8月15日上午9:32:02
	 */
	void selectforPage(PageUtils<ProductSpecModelVo> pageinfo);
	
	/**
	 * Description:查询当前厂商的所有的模板
	 * @param facId
	 * @return
	 * @author dingjiang
	 * @date 2017年9月11日下午1:34:34
	 */
	List<ProductSpecModelVo> selectModels(Long facId);
	
	/**
	 * Description:根据ID查询
	 * @param id
	 * @param facId
	 * @return
	 * @author dingjiang
	 * @date 2017年9月7日下午5:58:15
	 */
	ProductSpecModelVo find(Long id, Long facId);
	
	/**
	 * Description:批量删除规格模板
	 * @param facId
	 * @param ids
	 * @return
	 * @author dingjiang
	 * @date 2017年9月7日下午4:54:13
	 */
	boolean deletes(Long facId, Long[] ids);
	
	boolean remove(ProductSpecModelEntity specModelEntity);
	
	boolean update(ProductSpecModelEntity specModelEntity);
	
	boolean updateKey(ProductSpecKeyEntity key);
	
	/**
	 * Description:编辑保存
	 * @param specModelEntity
	 * @return
	 * @author dingjiang
	 * @date 2017年9月25日上午10:55:12
	 */
	boolean modify(ProductSpecModelEntity specModelEntity);
	
	/**
	 * Description:批量更新
	 * @param id
	 * @return
	 * @author dingjiang
	 * @date 2017年9月15日上午11:49:15
	 */
	boolean updateBatch(Long mid, Long id, List<String> spec);
	
	/**
	 * Description:通过规格模板名称查询模板信息
	 * @param facId 厂商ID
	 * @param modelName 规格模板名称
	 * @return ProductSpecModelEntity
	 * @author liushengchao
	 * @date  2017年9月27日上午11:08:37
	 */
	ProductSpecModelEntity selectModelByName(@Param("facId")Long facId,@Param("modelName")String modelName);
	

}






